package dados;

import java.io;
public class Produto implements Comparable<Produto>
{
	
	private int codigo;
	private String nome;
	private double precoUnitario;
	private int estoque;
	private GregorianCalendar dataCad;
	
	public Produto(int codigo, String nome, double precoUnitario, int estoque, GregorianCalendar dataCad)
	{
	
		this.codigo = codigo;
		this.nome = nome;
		this.precoUnitario = precoUnitario;
		this.estoque = estoque;
		this.dataCad = dataCad;
	}

	public int getCodigo() 
	{
		return codigo;
	}

	public void setCodigo(int codigo) 
	{
		this.codigo = codigo;
	}

	public String getNome() 
	{
		return nome;
	}

	public void setNome(String nome) 
	{
		this.nome = nome;
	}

	public double getPrecoUnitario() 
	{
		return precoUnitario;
	}

	public void setPrecoUnitario(double precoUnitario) 
	{
		this.precoUnitario = precoUnitario;
	}

	public int getEstoque() 
	{
		return estoque;
	}

	public void setEstoque(int estoque) 
	{
		this.estoque = estoque;
	}

	public GregorianCalendar getDataCad()
	{
		return dataCad;
	}

	public void setDataCad(GregorianCalendar dataCad) 
	{
		this.dataCad = dataCad;
	}
	/**
	 * M�todo para adicionar produto ao estoque.
	 * @param quantidade
	 */
	public void adicionarProduto (int quantidade)
	{
		this.estoque = this.estoque + quantidade;
	}
	/**
	 * M�todo para decrementar produto em estoque.
	 * @param quantidade
	 * @throws SisComException - Estoque Insuficiente!
	 */
	public void decProduto (int quantidade) throws SisComException
	{
		if (estoque < quantidade)
			throw new SisComException("Estoque Insuficiente!\n");
		this.estoque = this.estoque - quantidade;		
	}
	/**
	 * COmpara dois nomes de produto e retorna 0 caso os nomes sejam iguais,
	 * 1 para maior
	 * -1 para menor
	 */
	public int compareTo (Produto produto)
	{
		return nome.compareTo(produto.nome);
	}
	/**
	 * M�todo de impress�o dos dados.
	 */	
	@Override
	public String toString() 
	{
		return 
				"Codigo:" + codigo + "\n" +
				"Nome:" + nome + "\n" +
				"Preco Unitario:" + precoUnitario + "\n" +
				"Estoque:" + estoque + "\n" +
				"Data do Cadastro:" + LtpUtil.formatarData(dataCad, "dd/MM/yyyy EEEE") +"\n";
	}
}
